// Core modules
pub mod auth;
pub mod cache;
pub mod config;
pub mod errors;
pub mod models;

// Entity modules
pub mod entities {
    pub mod language;
    pub mod category;
    pub mod category_translation;
    pub mod brand;
    pub mod brand_translation;
    pub mod article;
    pub mod article_translation;
    pub mod product;
    pub mod product_translation;
    pub mod user;
    pub mod resource;
    pub mod article_resource;
    pub mod product_resource;
}

// Service modules
pub mod services {
    pub mod language_service;
    pub mod category_service;
    pub mod brand_service;
    pub mod article_service;
    pub mod product_service;
    pub mod resource_service;
}

// Controller modules
pub mod controllers {
    pub mod public;
    pub mod admin;
}

// Route modules
pub mod routes {
    pub mod public;
    pub mod admin;
}

// Migration modules
pub mod migrations {
    pub mod m20240101_000001_create_languages_table;
    pub mod m20240101_000002_create_categories_table;
    pub mod m20240101_000003_create_category_translations_table;
    pub mod m20240101_000004_create_brands_table;
    pub mod m20240101_000005_create_brand_translations_table;
    pub mod m20240101_000006_create_users_table;
    pub mod m20240101_000007_create_articles_table;
    pub mod m20240101_000008_create_article_translations_table;
    pub mod m20240101_000009_create_products_table;
    pub mod m20240101_000010_create_product_translations_table;
    pub mod m20240101_000011_create_resources_table;
    pub mod m20240101_000012_create_article_resources_table;
    pub mod m20240101_000013_create_product_resources_table;
}

// Test modules
pub mod tests;

pub use config::Config;
pub use errors::AppError;
